// IVB checksum: 879472600
---------------------------------------------------------------
File name   :  vv_ahblite_types_h.e
Title       :  Common type declarations
Project     :  vv_ahblite eVC
Developers  :  stefan, filip
Created     :  26.07.2011.
Description :  This file declares common types used throughout the UVC.
Notes       :  
---------------------------------------------------------------
Copyright  (c)2011
---------------------------------------------------------------

<'
package vv_ahblite;

-- **************************************************************************
-- Defines
-- **************************************************************************

#ifndef  VV_AHBLITE_ADDR_WIDTH {
    define VV_AHBLITE_ADDR_WIDTH 32; --maybe we shouldn't define this since it is not configurable by the protocol
};

#ifndef VV_AHBLITE_DATA_WIDTH {
   define VV_AHBLITE_DATA_WIDTH 32;
};

-- ==========================================================================
-- General Types
-- ==========================================================================
 
-- This type enumerates the logical names of each env.
-- Must be extended by the user in the config file.
type vv_ahblite_env_name_t : [DEFAULT];

-- This type enumerates the logical names of each agent (master,
-- or slave) in the verification environment. 
-- The names must be unique in each UVC instance.
type vv_ahblite_agent_name_t : [M0,S0,S1,S2,S3,DEFAULT_SLAVE];

-- ==========================================================================
-- Types Representing vv_ahblite Signals
-- ==========================================================================

type vv_ahblite_addr_t    : uint(bits:VV_AHBLITE_ADDR_WIDTH);

type vv_ahblite_data_t    : uint(bits:VV_AHBLITE_DATA_WIDTH);

--added for ahblite
type vv_ahblite_burst_t : [SINGLE, INCR, INCR4, INCR8, INCR16, WRAP4, WRAP8, WRAP16];
type vv_ahblite_transfer_t : [IDLE, BUSY, NONSEQ, SEQ];
type vv_ahblite_data_size_t : [BYTE, HALFWORD, WORD];

-- This code provides a message tag that can be used to send certain message
-- actions to a log file.
extend message_tag: [VV_AHBLITE_FILE];

-- ==========================================================================
-- Declaration of all Package Components
-- ==========================================================================
-- In some cases, you might want to split code into two or more files, but
-- this results in a cyclic dependency between the files. To avoid cyclic
-- imports, cyclic dependency is handled another way.
-- For more information on this approach, see the eRM manual.
-- ==========================================================================

unit vv_ahblite_bus_monitor {};
unit vv_ahblite_agent_monitor {}; --@@@@ optionally we will define agent monitors 
unit vv_ahblite_agent {};
unit vv_ahblite_master like vv_ahblite_agent {};
unit vv_ahblite_slave like vv_ahblite_agent {};
unit vv_ahblite_env like any_env {};
unit vv_ahblite_bfm {};
unit vv_ahblite_master_bfm like vv_ahblite_bfm{};
unit vv_ahblite_slave_bfm like vv_ahblite_bfm{};
'>
